<!DOCTYPE html>  
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org"
      xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity3"
      xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
<head>  
<meta charset="UTF-8" />  
<title>Shiro测试</title>  
</head>  
<body>  
    <h3>Shiro</h3> 
   
    <p th:text="${hello} ">default message</p>
    
    <p th:object=" ${#httpSession.getAttribute('currentUser')}">default user</p>
  
     
    <th:block th:inline="text">
	    全局变量: [(${basePath})]
	</th:block>
    
    <!-- 验证当前用户是否为“访客”，即未认证（包含未记住）的用户。 -->
    <p shiro:guest="">1.未认证（包含未记住）的用户:Please <a href="login.html">login</a></p>
    
    
    <!-- 认证通过或已记住的用户。 -->
    <p shiro:user="">
           2. 认证通过或已记住的用户。 :Welcome back John! Not John? Click <a href="login.html">here</a> to login.
    </p>
    
    <!-- 已认证通过的用户。不包含已记住的用户，这是与user标签的区别所在。 -->
    <p shiro:authenticated="">
      Hello, <span shiro:principal=""></span>, how are you today?
    </p> 
    
    <a shiro:authenticated="" href="updateAccount.html">Update your contact information</a>
    
    <!-- 输出当前用户信息，通常为登录帐号信息。 -->
    <p>输出当前用户信息，通常为登录帐号信息 : <shiro:principal/> </p>
    
    
    <!-- 未认证通过用户，与authenticated标签相对应。与guest标签的区别是，该标签包含已记住用户。 -->
    <p shiro:notAuthenticated="">
       Please <a href="login.html">login</a> in order to update your credit card information.
    </p>
     
    <!-- 验证当前用户是否属于该角色。 -->
    <a shiro:hasRole="Admin" href="admin.html">有权限Admin Administer the system</a><!-- 拥有该角色 -->
    
    <!-- 与hasRole标签逻辑相反，当用户不属于该角色时验证通过。 -->
    <p shiro:lacksRole="Admin"><!-- 没有该角色 -->
              没有该角色 Admin
      Sorry, you are not allowed to developer the system.
    </p>
    
    <!-- 验证当前用户是否属于以下所有角色。 -->
    <p shiro:hasAllRoles="developer, Admin"><!-- 角色与判断 -->
       You are a developer and a admin.
    </p>
    
    <!-- 验证当前用户是否属于以下任意一个角色。  -->
    <p shiro:hasAnyRoles="admin, vip, developer"><!-- 角色或判断 -->
         You are a admin, vip, or developer.
    </p>
    
    <!--验证当前用户是否拥有指定权限。  -->
    <a shiro:hasPermission1="userInfo:add" href="createUser.html">添加用户</a><!-- 拥有权限 -->
    
    <!-- 与hasPermission标签逻辑相反，当前用户没有制定权限时，验证通过。 -->
    <p shiro:lacksPermission="userInfo:del"><!-- 没有权限 -->
         Sorry, you are not allowed to delete user accounts.
    </p>
    
    <!-- 验证当前用户是否拥有以下所有角色。 -->
    <p shiro:hasAllPermissions="userInfo:view, userInfo:add"><!-- 权限与判断 -->
           You can see or add users.
    </p>
    
    <!-- 验证当前用户是否拥有以下任意一个权限。  -->
    <p shiro:hasAnyPermissions="userInfo:view, userInfo:del"><!-- 权限或判断 -->
               You can see or delete users.
    </p>
    
</body>  
</html>